This page last changed on Dec 12, 2006 by juanca.

En Razor los canales son el medio que sirve para:

  • Comunicación inter en intra procesos.
  • Almacenar y consultar la información almacenada en el espacio de tuplas de cada canal.

Un canal está identificado por cualquier átomo.

El canal especial @

En cada proceso existe un canal especial reservado el cual es denotado por la expresión @. Solo el proceso en contexto tiene acceso a dicho canal. Usando el canal reservado es posible introducir nuevos canales locales sin afectar a otros procesos:

@<-[expresión].@?[expresión]

Sub-canales

Un canal en razor puede contener sub-canales. Se accede a un sub-canal nombrándolo después del super-canal antecedido de ":":

canal:subcanal:sub_sub_canal<-[info]

Las lecturas sobre un canal c también examinan el contenido de todos sus subcanales c:s recursivamente.

Otros canales especiales

Cada implementación de Razor predefine una serie de canales correspondientes bien sea a elementos sujetos a control, o a espacios correspondientes a bases de datos preexistentes.

En todos los casos, se garantiza que por lo menos los siguientes canales están predefinidos:

  1. in, el canal correspondiente a la entrada standard. Al inicio del programa el ambiente de ejecución coloca una tupla en el canal con un átomo por caracter en la entrada. Escribir en el canal produce un error en tiempo ejecución.
  2. out, el canal correspondiente a la salida standard. Convierte cada átomo la tupla escrita a una secuencia de caracteres y lo escribe a la salida standard. Leer del canal produce un error en tiempo ejecución.
  3. err, el canal correspondiente a la salida para errores. Como el canal out.
  4. sound, acepta tuplas de la forma [frecuencia, duración] y emite el sonido indicado. Leer del canal produce un error en tiempo ejecución.
  5. time, cuaando es leido, regresa la fecha y hora como el número de milisegundos transcurridos desde enero 1, 1970 00:00:00 GMT.
Document generated by Confluence on Oct 04, 2010 11:25